// 对axios进行二次封装 给他

import axios from "axios"
import 'nprogress/nprogress.css'
import NProgress from "nprogress";
import { getUserTempId } from "@/utils/getUserTempl"


// 创建axios实例对象
const ajax = axios.create({
  baseURL: '/api',
  timeout: 5000, // 设置超时时间
});


// 设置请求拦截器
// 添加请求拦截器 发送请求之前要执行的
ajax.interceptors.request.use((request) => {

  // 在请求发送之前添加uuid 唯一标识符
  request.headers.userTempId = getUserTempId()
  // 在发送请求之前做些什么
  NProgress.start()
  return request;
}, function (error) {
  // 对请求错误做些什么
  NProgress.start()
  return Promise.reject(error);
});

// 添加响应拦截器
ajax.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  NProgress.done()
  // console.log(response.data);
  return response.data;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  NProgress.done()
  return Promise.reject(error);
});



// 5. 导出对象
export default ajax